let express = require("express");

let { Article } = require("../../model/index.js");

// ****1-创建一个路由中间件，来管理 文章相关的路由

let router = express.Router();

// ****2-在文章路由中间件 处理 文章相关的路由操作

// 1-获取所有文章，pagenum pagesize 分页，
// uid 用户id
// 返回 接口 参数值
// get /articles?pagenum=1
router.get("/", async (req, res) => {
  // 获取 搜索参数中 页码 和 页大小 ,设置 这个两个参数的默认值
  let pagesize = req.query.pagesize || 10;
  let pagenum = req.query.pagenum || 1;
  // let uid = req.query.uid;
  console.log(pagesize, pagenum);
  // req.auth.id  当前登录用的id

  let title = req.query.title ?? "";
  let type = req.query.type ?? "";
  let obj = { title: new RegExp(title) };
  if (type) {
    obj = { ...obj, type };
  }

  let r = await Article.find(obj)
    // 按照创建时间 降序
    .sort({ createdAt: -1 })
    // 分页操作
    .skip((pagenum - 1) * pagesize)

    .limit(pagesize);

  res.json({
    params: { pagenum, pagesize },
    data: r,
    msg: "-获取所有文章，",
  });
});
// 2- 动态id根据文章id 获取文章详情，返回 接口作用，和 文章id
// get /articles/:aid
router.get("/:aid", async (req, res) => {
  // 搜索参数 获取文章aid  req.params.aid
  let r = await Article.findByIdAndUpdate(
    req.params.aid,
    // 浏览量自增1
    { $inc: { views: 1 } },
    // 不去修改  文章的更新时间,获取最新的 文章的数据
    { timestamps: false, new: true }
  );

  res.json({
    params: req.params,
    data: r,
    msg: "动态id根据文章id 获取文章详情",
  });
});

// ******3-导出文章路由中间件
module.exports = router;
